package jobascjp;

public class Bertha {
    static String s = "";
    public static void main(String[] args) {
        int x = 4; Boolean y = true; short[] sa = {1,2,3};
        doStuff(x, y); // es landet ein Integer und ein Boolean in der Methode, es bleibt somit nur die Object-Methode, es kommt also 2 an
        doStuff(x); // es landet genau ein Integer in der Methode, wird das nun Objekt-Einzel oder Integer-Array, es wird Object, somit kommt 1;
        doStuff(sa, sa); // es wird zweimal das Short-Array reingelegt, da passt dann auch nur das Object-Array, genauer zwei Array-Objekte, Ergebnis 2
        System.out.println(s);
    }
    static void doStuff(Object o) { s += "1"; }
    static void doStuff(Object... o){ s += "2"; }
    static void doStuff(Integer... i){ s += "3"; }
    static void doStuff(Long L){ s += "4"; }
    
    /*
     * What is the result?
     * 
     * 212 // korrekt
     * 232
     * 234
     * 312
     * 332
     * 334
     * Compilation fails.
     * 
     * Anmerkungen:
     * Es geht vor allem darum zu erkennen, ob das short-Array ins Integer-Array
     * oder ins Objekt-Array geht. Siehe inline;
     * 
     */
    
}
